package com.probox.common.entity.service.order;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.probox.common.entity.domain.order.OrderInfo;
import com.probox.common.entity.domain.order.OrderShipDeliver;
import com.probox.order.api.domain.OrderShipDeliverVo;

/**
 * 订单发货信息Service接口
 *
 * @author hds
 * @date 2021-06-07
 */
public interface IOrderShipDeliverService extends IService<OrderShipDeliver> {


    /**
     * 查询订单发货信息
     *
     * @param deliverUid 订单发货信息ID
     * @return 订单发货信息
     */
    public OrderShipDeliver selectOrderShipDeliverById(Long deliverUid);


    /**
     * 查询订单发货信息列表
     *
     * @param orderShipDeliver 订单发货信息
     * @return 订单发货信息集合
     */
    public List<OrderShipDeliver> queryList(OrderShipDeliver orderShipDeliver);


    /**
     * 新增订单发货信息
     *
     * @param orderShipDeliver 订单发货信息
     * @return 结果
     */
    public boolean insertOrderShipDeliver(OrderShipDeliver orderShipDeliver);

    /**
     * 修改订单发货信息
     *
     * @param orderShipDeliver 订单发货信息
     * @return 结果
     */
    public boolean updateOrderShipDeliver(OrderShipDeliver orderShipDeliver);

    /**
     * 批量删除订单发货信息
     *
     * @param deliverUids 需要删除的订单发货信息ID
     * @return 结果
     */
    public boolean deleteOrderShipDeliverByIds(Long[] deliverUids);

    /**
     * 根据ID获取发货信息
     *
     * @param orderUid
     * @return
     */
    public List<OrderShipDeliverVo> getByOrderUid(Long orderUid);

    /**
     * 获得发货类型为正常的发货信息
     * @param orderInfo
     */
    OrderShipDeliverVo getNormalDeliver(OrderInfo orderInfo);
}
